1. Technical Field
The present invention relates to a process and device for predicting noise in a received signal, in particular, for predicting noise in received signals by digital receivers or transceiver modules in a wireless or wired digital transmission system.
2. Background Information
In modern digital receivers, the use of convolutional codes in conjunction with a Viterbi decoder has become the state of the art. A significant improvement in the signal-to-noise ratio (SNR) is obtained by coding. The Viterbi algorithm used for the decoding provides a trellis diagram, whereby the trellis diagram shows state changes over time based on the symbols received with the received signal. To decode the incoming symbols, path metrics are computed. During an evaluation of the path metrics, reliability information is obtained in the form of probabilities, whether a received symbol is based on a transmitted “0” or on a transmitted “1”. The state transitions which are most probable with regard to their path metrics are selected in the trellis diagram. The reliability information is obtained by the added-up path metrics of the best “1-path” in relation to the added-up path metrics for the best “0-path.” The paths, defining the most probable state transitions from one time-point to a following time-point, are also known as “survivor” paths. Since the Viterbi algorithm is the general state of the art, it will not be discussed further at this stage.
If a trellis-coded modulation environment (“TCM”) is disturbed by heavily correlated noise (“HCN”), for example by pure sine waves with relatively large amplitudes, the system no longer functions. A convolution or a Viterbi decoder will determine the path metrics on the basis of “normal” white Gaussian noise (WGN). In reality, white noise is not the only noise that affects the signal. While minor noise influences may be tolerable, the Viterbi decoder and therefore the corresponding digital receiver de-converge if heavily correlated noise is present.
Heavy correlated noise arises when radio frequency interference (“RFI”) is encountered. A known process to suppress the influence of heavy correlated noise is the use of linear noise predictors that forecast or estimate future noise influences and noise values on the basis of past noise influences and noise values. Linear noise prediction uses digital filters, whose coefficients, “taps”, are adaptively adjusted dependent on the prediction of errors by the noise predictor. The aim is to optimize the coefficients of these digital filters so that the average square prediction error is minimized.
A simplified block diagram of a transmission system with a digital receiver, in which such decision-directed adaptive noise prediction is used, is reproduced in FIG. 1. In FIG. 1, it is assumed that a transmitted signal v is transmitted via a channel 2 from a signal source 1 of a transmitter resulting in a correspondingly distorted or disturbed signal c at the output of the channel 2. The input of the respective receiver is overlaid by correlated noise n, which in FIG. 1 is indicated in the form of a noise source 3 in combination with an adder 4. The received signal of the digital receiver is fed to an equalizer 5. The received signal u processed by the equalizer 5 is fed to a decider 6 that includes a slicer 7 in combination with a noise predictor 8. The slicer 7 makes symbol decisions based on the received signal after applying the Viterbi algorithm. The slicer 7 outputs a signal sequence v′. The signal sequence v′ is combined in an adder 9 with a signal u′ and the difference between the received signal u and the signal v′ is fed back to the noise predictor 8 as an input signal. The noise predictor 8 calculates future noise values based on the signal from adder 9 for the noise previously contained in the received signal u. The current noise in the received signal u may be subtracted with the aid of adder 10 before the signal is fed to the slicer 7.
The noise predictor 8 and/or the corresponding digital linear prediction filter is optimized with regard to the filter coefficients such that the average square prediction error is minimized. This approach estimates the noise component contained in the received signal with the aid of a noise predictor and delivers good results as long as the correct prediction coefficients for the noise predictor are known. Since the noise signal is not known separately, but rather it additively overlays the actual wanted signal, the correct adjustment of the filter coefficients for the noise predictor must be adaptively matched to the noise. The technique is impaired because the noise predictor is embedded in a coded environment. The problem with this approach is the way the noise is synthesized, which corresponds to the problem of how correct decisions can be made in a coded environment.
Instead of a decision-oriented noise prediction approach described above, it was proposed to carry out a separate noise prediction for each survivor path of the trellis diagram on the basis of the linear prediction theory. The main disadvantage for the decision-oriented noise prediction is that the noise is not synthesized, but instead, the noise estimated values are incorporated in the branch and path metrics of the trellis diagram. The path metrics are corrected according to the noise estimated values before the survivor paths are determined. The states of a specific time-point in the trellis diagram, and not only the path metrics, have to be updated, but also the distances of the preceding branches pertaining to the respective survivor path and the number of the linear prediction filters at each time-point corresponding to the number of states in the trellis diagram need to be updated. Therefore a noise value must be predicted by linear filtering for each state in the trellis diagram.
If the branch metrics, associated with a specific state transition from a state s to a state s′ at time-point t, are designated with λs,s′(t), then for an optimal Viterbi decoder, which works in an environment with white Gaussian noise, the so-called Euclidean distance (ED) between the symbol u(t) received at the respective time-point and the estimated symbol es,s′(t) assigned to the respective branches is:λs,s′(t)=|u(t)−es,s′(t)|2=|δs,s′(t)|2  (1)The equation (1) corresponds to the noise estimated value δs,s′(t) assigned to the respective branch between the state s and the state s′, which is laid over the received signal, if the state transition s to s′ is correct. The noise estimated values of paths competing with one another at previous time-points are used to forecast the respective noise value for the time-point t. The state memory of the noise predictor for a trellis-state therefore corresponds to a vector of the noise estimated values. The trellis-noise predictor state memory functions as a time-dependent distance matrix which contains the noise estimated values δp(t) assigned to specific paths p by the trellis diagram:
                              Δ          ⁡                      (            t            )                          =                  [                                                                                          δ                    0                                    ⁡                                      (                                          t                      -                      1                                        )                                                                                                                    δ                    0                                    ⁡                                      (                                          t                      -                      2                                        )                                                                              …                                                                                  δ                    0                                    ⁡                                      (                                          t                      -                      N                                        )                                                                                                                                            δ                    1                                    ⁡                                      (                                          t                      -                      1                                        )                                                                                                                    δ                    1                                    ⁡                                      (                                          t                      -                      2                                        )                                                                              …                                                                                  δ                    1                                    ⁡                                      (                                          t                      -                      N                                        )                                                                                                      ⋮                                            ⋮                                            ⋰                                            ⋮                                                                                                          δ                                                                  2                        M                                            -                      1                                                        ⁡                                      (                                          t                      -                      1                                        )                                                                                                                    δ                                                                  2                        M                                            -                      1                                                        ⁡                                      (                                          t                      -                      2                                        )                                                                              …                                                                                  δ                                                                  2                        M                                            -                      1                                                        ⁡                                      (                                          t                      -                      N                                        )                                                                                ]                                    (        2        )            Here, N designates the number of time-points considered in total and M designates the overall memory of the Viterbi coder, so that the trellis diagram contains 2M states and 2M competing paths.
FIG. 2 shows an example of a trellis diagram with four states, the branch metrics λs,s′(t) assigned to the individual branches and/or state transitions between two sequential states and the resulting path metrics γs(t). The path metrics correspond to the branch metrics accumulated in each case, (s,s′=0, 1, 2, 3). The distance matrix for the trellis diagram illustrated reads as follows:
                              Δ          ⁡                      (            t            )                          =                  [                                                                                          δ                                          0                      ,                      0                                                        ⁡                                      (                                          t                      -                      1                                        )                                                                                                                    δ                                          0                      ,                      0                                                        ⁡                                      (                                          t                      -                      2                                        )                                                                                                                                            δ                                          0                      ,                      1                                                        ⁡                                      (                                          t                      -                      1                                        )                                                                                                                    δ                                          0                      ,                      0                                                        ⁡                                      (                                          t                      -                      2                                        )                                                                                                                                            δ                                          3                      ,                      2                                                        ⁡                                      (                                          t                      -                      1                                        )                                                                                                                    δ                                          1                      ,                      3                                                        ⁡                                      (                                          t                      -                      2                                        )                                                                                                                                            δ                                          3                      ,                      3                                                        ⁡                                      (                                          t                      -                      1                                        )                                                                                                                    δ                                          1                      ,                      3                                                        ⁡                                      (                                          t                      -                      2                                        )                                                                                ]                                    (        3        )            The noise estimated values can be obtained in vector form as follows by matrix multiplication of the distance matrix Δ(t) and the noise predictor coefficient vector {right arrow over (w)}n:
                                                        ξ              →                                            ⁡                      (            t            )                          =                                            Δ              ⁡                              (                t                )                                      ·                                          w                →                            n                                =                      [                                                                                                      ξ                      0                                        ⁡                                          (                      t                      )                                                                                                                                                              ξ                      1                                        ⁡                                          (                      t                      )                                                                                                                    ⋮                                                                                                                        ξ                                                                        2                          M                                                -                        1                                                              ⁡                                          (                      t                      )                                                                                            ]                                              (        4        )            The vector of the noise estimated values are updated for each time-point of the trellis diagram and contains the noise forecasts for all competing paths of the respective preceding time-point and/or the particular previous time instance. The noise prediction and/or noise estimated value determined for each path is used to compute the noise-estimated values for the paths leading away from the respective state at the current time-point.
In the example for the trellis diagram with four states, the noise estimated value ξ0(t) serves as a basis for all branches, which have their origin in the state s=0, that is the branches (s,s′)=(0,0) and (s,s′)=(0,1). The computation of the path metrics is altered as follows:γs′(t)=minγs(t−1)+|δs,s′(t)−ξs(t)|2  (5)
It is clear from the above equation (5) how the noise estimated values are determined according to equation (4) are incorporated into the computation of the corrected path metrics, where the pre-condition for the equation (5) is that the state transition from the state s to the state s′ is a valid branch.
At each time-point for every trellis state, a decision must be made between two competing paths. For both branches a distance measurement δs,s′(t) is determined, from which a corresponding noise estimated value ξs(t) is subtracted. In the example of FIG. 2, each noise estimated value for the two competing branches of a state is computed with the aid of a second order linear filter operation. With the aid of a linear filter with two taps, and the same tap weights are used for each case, only the state memory for computing the noise estimated values for each state will be altered. The state memory of the linear filter will then correspond exactly to a line of the distance matrix. The matrix multiplication is realized by sequential linear filtering. The distance matrix according to equation (3) is updated as a function of all path decisions, and the distance vector of the survivor path selected in each case is kept for further use, while the other distance vector is rejected. The distance vector that is kept will be updated by the distance measurement associated with the respective survivor path, while the oldest distance measurement in this distance vector is rejected. Since one assumes a state of at least two state transitions and/or branches, the noise estimated value ξs(t) of a state is used at least twice. Therefore, it is advisable to employ the butterfly structure of the trellis diagram.
From equation (4) above, the noise estimated values, which serve to compute the noise-compensated path metrics of the respective trellis diagram, can be determined using the vector {right arrow over (w)}n, which contains the coefficients of the noise predictor, so that this vector is designated as a noise predictor coefficient vector. A fundamental problem with this approach is the correct determination of the noise predictor coefficients incorporated in this vector for determining the noise estimated values for computing the corrected path metrics according to equations (4) and (5).